#include "Framework/Win32/Win32Kernel.h"

#include "Framework/Win32/Win32LogService.h"
#include "Framework/Win32/Win32FileService.h"
#include "GfxDriver/WGL/WGLGfxDriver.h"

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <mmsystem.h>

namespace Orca {

	//--------------------------------------------------------------------------
	Win32Kernel::Win32Kernel() {

		Kernel::msInst = this;
	}

	//--------------------------------------------------------------------------
	Win32Kernel::~Win32Kernel() {

		Kernel::msInst = NULL;
	}

	//--------------------------------------------------------------------------
	uint32 Win32Kernel::getCurrentTime() {

		return timeGetTime();
	}

	//--------------------------------------------------------------------------
	LogService* Win32Kernel::_createLogService() {

		return new Win32LogService;
	}

	//--------------------------------------------------------------------------
	FileService* Win32Kernel::_createFileService() {

		return new Win32FileService;
	}

	//--------------------------------------------------------------------------
	GfxDriver*	Win32Kernel::_createGfxDriver() {

		return new WGLGfxDriver;
	}

	//--------------------------------------------------------------------------
}